MAC Layer Improvements

As it is shown in the Physical Layer Improvements part, the technical changes given with 802.11n brings throughput capacities much higher than the previous generations.  However, these improvements will only be useful if improvements are also realized on the MAC layer. Indeed, with the previous generations, all the overheads, such as Block Acknowledgement (BA) or frame check sequence (FCS) are responsible for more than 65% of the transmitted information by Wi-Fi. In order to improve performance and enjoy the one offered by the physical layer improvements 802.11n brings different solutions. One of theses solutions is frame aggregation:

Frame Aggregation

Frame aggregation is used at the level of the MAC protocol, to aggregate several Protocol Data Units (PDUs) coming from the upper layer. As we will see, there is two ways to realize a frame aggregation: A-MSDU and A-MPDU. Before detailing their respective principle, we will see the limitations of frame aggregation.

 

A-MPDU:

Figure 12: Details of the PPDU format when using A-MPDU

 

A-MPDU stands for Aggregated - MAC Protocol Data Unit. The particularity of this version of frame aggregation comes from the fact that the aggregation is realized after the creation of the MPDU i.e. after the encapsulation of the MSDU received from the LLC (Logical Link Control) layer into a MAC PDU. To this MPDU, we add a delimiter called MPDU delimiter. It is composed of a reserved field on 4 bits, of the size of the MPDU on 12 bits, of a CRC (Cyclic Redundant Check) to check the integrity of the 16 previous bits and of a delimiter signature, which helps the de-aggregation when the frame is received. After the MPDU, we add padding between 0 and 3 bits so the MPDU is a multiple of four bytes in length, which can assist subframe delineation at the receiver side. All of these bits represent a subframe. The length of such a subframe is limited to 4095 bytes.

Finally, utmost 64 subframes can be aggregated to form an A-MPDU i.e. a PSDU i.e. a PPDU when a Physical header is added.

 

A-MSDU:

Figure 13: Details of the PPDU format when using A-MSDU

 

A-MSDU stands for Aggregated - Mac Service Data Unit. The difference with A-MPDU is that the aggregation is here realized before the MAC encapsulation. The result is that, as you can see on the above figure, there is only one MAC header for the all PSDU while a PSDU constructed with an A-MPDU has several MPDU, and therefore several MAC headers. This definitively reduce the number of bits transmitted for MAC headers and Phy headers, particularly when it is about frames for TCP acknowledgements, which are small MSDUs.

               At the top of the MAC layer, a buffer is in charge of receiving and holding MSDUs coming from the above layer, the LLC layer. The frames are stored until the maximum number of MSDUs to be aggregated is reached or after a certain delay. To every received MSDU is joined a Destination Address (DA), a Source Address (SA) and the length of the linked MSDU. Just like A-MPDU, in order to have subframes having a four multiple length, every MSDU has a 4 bits of padding. This set constitutes a Subframe. Its maximum size is either 3839 bytes or 7935 bytes depending on the Phy PSDU size limitation. With the MAC header and the A-MSDU, we add a frame check sequence.

Note: in comparison, A-MPDU is, in most cases, more efficient than A-MSDU due to the technology we are about to talk about: block acknowledgement.

Block Acknowledgement

Another major flaw with the previous generations of 802.11 was that, when we needed retransmission in case of loss, every sent packets had had to be acknowledged, using an Ack frame. This behavior limits the bandwidth.

802.11n introduces block Acknowledgement (BA) which allows acknowledgement of multiple received packets with when single BA frame. This new technology is not applied with A-MSDUs because one normal Ack frame acknowledges the all A-MSDU. However, with A-MPDUs, every subframes must be individually acknowledged. This is the flaw of A-MSDU. Because an error bit can occur on one single subframe, leaving the others subframes clean. But because the error detection is done thanks to the FCS, general to whole aggregated packet, the all packet must re-emitted which reduces dramatically the bandwidth. This problem does not exist with the use of A-MPDU and BA.

A BA is constituted with a bitmap to selectively indicate which of the transmitted frames have been lost. These indications allow the transmitter to re-emit only the lost frames. A BA can acknowledge 64 frames at most.

What mechanism allows the communicating devices to know whether they should use BA or single Ack? When a session between two devices is opened, the device that wishes to use A-MPDUs for its transmissions and therefore receive BA sends an ADDBA request. If the other device agrees, it responds with an ADDBA response, accepting the request. An ADDBA request must be sent by every devices that wishes to transmit frames using A-MPUDs.